package cn.szq.springframework.beans.factory.support;

import cn.szq.springframework.beans.factory.config.SingletonBeanRegistry;

import java.util.HashMap;
import java.util.Map;

/***
 * All rights Reserved, Designed By www.jx-lab.com
 * @Title: DefaultSingletonBeanRegistry
 * @Description: 获取单例对象
 * @author lixy
 * @date 2021/8/12 8:40
 * @version V1.0
 * @Copyright: www.jx-lab.com Inc. All rights reserved.
 * 注意：本内容仅限于众合景轩信息技术有限公司内部传阅，禁止外泄以及用于其他的商业目
 */
public class DefaultSingletonBeanRegistry implements SingletonBeanRegistry {

    private Map<String, Object> singleMap = new HashMap<>();

    @Override
    public Object getSingleton(String beanName) {
        return singleMap.get(beanName);
    }

    /**
     * 这个方法可以被继承此类的其他类调用。
     * 包括：AbstractBeanFactory 以及继承的 DefaultListableBeanFactory 调用。
     * @param beanName
     * @param singletonObject
     */
    protected void addSingleton(String beanName, Object singletonObject){
        singleMap.put(beanName, singletonObject);
    }
}
